#ifndef ALIOT_DM_H
#define ALIOT_DM_H
#include "cJSON.h"

typedef enum 
{
    ALIOT_DM_POST, //上报
    ALIOT_DM_SET_ACK, //属性设置回复
    ALIOT_DM_OTA_VERSION //OTA版本号
}ALIOT_DM_TYPE;

typedef struct 
{
    cJSON * dm_js;
    char * dm_js_str;
}ALIOT_DM_DES;

//生成物模型描述对象
ALIOT_DM_DES *aliot_malloc_des(ALIOT_DM_TYPE type);
//往物模型添加属性(浮点型)
void aliot_set_dm_float(ALIOT_DM_DES *dm, const char *name, float value);
//往物模型描述结构体添加属性  (整型)
void aliot_set_dm_int(ALIOT_DM_DES *dm, const char *name, int value);

//生成json字符串
void aliot_dm_serialize(ALIOT_DM_DES *dm);
//生成版本号
void aliot_set_ota_version(ALIOT_DM_DES *dm, const char *version);
//释放字符串
void aliot_dm_free(ALIOT_DM_DES *dm);
//属性回复
void aliot_set_dm_property_ack(ALIOT_DM_DES *dm,int code,const char *name);
#endif

